Shortcut sets for controlled environments

ABSTRACT

A method and apparatus for shortcut sets to data sources, such as web sites, is disclosed. The shortcut sets may be associated with a controlled environment. A controlled environment might be a home, corporation, business, etc. As an example, an information technology (IT) manager configures shortcuts for the employees of the company. As another example, a family member configures shortcuts that are common to all family members, when at home. A user may enter a shortcut into a search box of a web browser to be directed to a data source. If the shortcut indicates a search at the data source is desired, then a search is automatically performed at the data source.

RELATED APPLICATION

This application claims the benefit as a continuation of U.S. patentapplication Ser. No. 12/732,156, filed on Mar. 25, 2010, which in turnclaims the benefit as a continuation of U.S. patent application Ser. No.11/924,863, filed on Oct. 26, 2007, issued as U.S. Pat. No. 7,752,285,on Jul. 6, 2010, which in turn claims priority to ProvisionalApplication No. 60/973,109, filed Sep. 17, 2007, the entire contents ofeach of which are hereby incorporated by reference as if fully set forthherein. The applicant hereby rescinds any disclaimer of claim scope inthe parent application, or the prosecution history thereof, and advisesthe USPTO that the claims in this application may be broader than anyclaim in the parent application.

FIELD OF THE INVENTION

The present invention relates to computer systems, and more particularlyto providing user shortcuts to data sources and to searches of datasources.

BACKGROUND

Content retrieval systems allow a user to make a request for content andreceive content related to the request. One example of a contentretrieval system is the Internet. If the user desires to access aspecific web page on the Internet, typically a user enters an address(e.g., a Uniform Resource Locator (URL)) into a web browser in order toreceive a web page corresponding to the URL.

In some cases, the user does not desire the content of a specific webpage, but is interested in searching for content. To search for contenton the Internet, a user typically uses a web browser to first access asearch engine, which provides the web browser with an interface tosubmit search criteria to the search engine. The interface displays thesearch results returned by the search engine. The user may desire thesearch to take place over the majority of the Internet. However, oftenthe user desires the search to take place over a particular data source,such as a web site.

Thus, even when performing a search, the user often focuses on aparticular data source. There are techniques, such as bookmarks, thatprovide a relatively quick means to access a particular website.However, users need to establish bookmarks and manage them. Oftentimes,the list of bookmarks becomes so long that it is time consuming for theuser to scroll down a list of bookmarks to the desired bookmark.Moreover, typical bookmarks do not automatically initiate a search ofthe bookmarked website.

Improved techniques are needed for allowing users to navigate toparticular data sources, such as websites. Moreover, improved techniquesare needed for users to search particular data sources.

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 is a system for shortcut sets for controlled environments anduser groups, in accordance with an embodiment of the present invention.

FIG. 2 is a flowchart of a process for shortcut sets for controlledenvironments and user groups, in accordance with an embodiment of thepresent invention.

FIG. 3 is a block diagram that illustrates a computer system upon whichembodiments of the invention may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Overview

Techniques are disclosed herein for providing a user with shortcuts toparticular data sources and/or shortcuts to perform a search atparticular data sources. In one embodiment, the user submits a shortcutinto a search box of a web browser that is interfacing with a searchengine. The search engine determines a website for the shortcut anddirects the web browser to the website. For example, if the user types“!my” in the search box, the user's web browser might be directed to thewebsite having the URL “my.yahoo.com.” If the submitted shortcutindicates a search is desired, then the search engine causes the webbrowser to automatically initiate a search at the website. For example,if the user types “!wsf” in the search box, the user's web browser mightbe directed to initiate a search, at a weather website, for the weatherforecast for San Francisco.

In one embodiment, all users in a controlled environment automaticallyhave access to the same set of controlled-environment shortcuts, withoutthe users having to set up the shortcuts. The controlled environmentmight be a home or corporation. As an example, an information technology(IT) manager configures shortcuts for the employees of the company. Asanother example, a family member configures shortcuts that are common toall family members, when at home. However, when the user is at a clientdevice outside of the controlled environment, the shortcuts for thecontrolled environment do not apply.

In another embodiment, all users associated with a particular onlinesocial group automatically have access to the same set of user-groupshortcuts, without the users having to set up the shortcuts. Forexample, all users that belong to an online group that is interested inautomobiles share a set of shortcuts.

Note that the user does not need to configure the shortcut setsthemselves. Note also that the shortcut sets for a user can be specificto each different controlled environment. Thus, as the user migratesfrom home to work to an Internet cafe, the user acquires differentshortcut sets. Also note that a user may be associated with manydifferent shortcut sets. For example, a user may be a member of afamily, a workgroup, one or more social groups, etc. The shortcut setsassociated with a particular user are the intersection of variousshortcut sets, in one embodiment.

System Overview

FIG. 1 is a system 100 for shortcut sets for controlled environments anduser groups, in accordance with an embodiment of the present invention.A server 108 has access to number of different shortcut sets, which ituses to provide a user at a client 102 with a shortcut to data source,such as a website. Proxies 106(1), 106(2) have environment specificshortcut sets 124(1) and 124(2), respectively, which the proxies 106(1),106(2) use to provide a shortcut to a client 102(1), 102(2) in theirrespective environment.

When a user sends a request to the server 108, the server 108 parses therequest to determine if the request is intended to trigger a request fora shortcut. The request may be submitted in a web browser that isinterfacing with the server 108, although a web browser is not required.In one embodiment, the request is a search query intended for a searchengine 109. As an example, a special character such as “!” at thebeginning of a search query can be used to indicate that a shortcut isrequested. If the request is intended to request a shortcut, the server108 extracts a hint token from the request. The server 108 consults oneor more of the individual shortcut sets 110(1)-110(n), user groupshortcut sets 112(1)-112(n), or environment specific shortcut sets124(3)-124(n) to determine whether a shortcut exists for the hint token.If so, the server 108 directs the client 102 to a data source (e.g., website) associated with the hint token. In one embodiment, the server 108directs the client 102 to initiate a search at the data sourceassociated with the hint token.

The proxies 106 are also able to provide shortcuts to clients 102 intheir controlled environments 101 by consulting the environment specificshortcuts sets 124. Typically, if a proxy 106 has an environmentspecific shortcut set 124, then the server 108 does not have environmentspecific shortcut set 124 for that controlled environment. In otherwords, an environment specific shortcut set 124 for a particularcontrolled environment 101 could be located at either a proxy 106 or theserver 108, but does not have to be at both.

Controlled Environment

As used herein, the term “controlled environment” means any set ofelectronic devices under common administration. The environment mayinclude electronic devices that belong to a given environment. Theelectronic devices may or may not be use the same hardware or run thesame software. Examples of electronic devices includes, but is notlimited to, a web-enabled cellular telephone, a web-enabled personaldigital assistant, a server running a particular operating system (e.g.,Linux, Solaris), a personal computer running the Windows® operatingsystem, etc.

The controlled environment may have a device that controls access to theenvironment. In one embodiment, the controlled environment has a proxywith a firewall to perform the access control. An administrator for thecontrolled environment may control what software is loaded on theclients. An example of a controlled environment is a home, where theadministrator may be any resident thereof, and the end users are thefamily members. Another example of a controlled environment is acorporation, where the administrator is the information technology (IT)manager, and the end users are employees of the company. Still anotherexample of a controlled environment is a business, such as an Internetcafé, where the administrator may be the proprietor, and the end usersare customers.

The administrator establishes a set of shortcuts for all clients 102 inthe controlled environment 101, in one embodiment. The administrator maystore the environment specific shortcut set 124 at a proxy 106 orprovide the environment specific shortcut set 124 to the server 108.

Shortcut Sets

The shortcut sets contain hint tokens associated with data sources. Aspreviously discussed, the hint token may be taken from a query sent fromthe client 102 to the server 108. The data source may be identified by aURL or the like. However, the data source is not limited to beingidentified by a URL. As used herein, the term data source includes anydata source that is available to the client 102. The server 108 does notneed to have access to the data source. In a controlled environment, thedata source might be a particular database or directory. As a particularexample, the data source might be a directory on a computer database,such as “H:\Yahoo\employees”. Thus, by submitting the hint tokenassociated with that data source, along with a search term, the usermight search over all files in a company directory named“Yahoo\employees”.

A family shortcut set is an example of a shortcut set in a controlledenvironment 101 of a home. The family shortcut set might contain hinttokens of “photos”, “ftpserver”, “bank”, etc. Assume that a websitehosts family photographs and that the shortcut “photo” directs theclient to that website. All the family members are then able type“!photos” into a search query box (for a particular search engine) toget directed to the website with family photos. A similar principleapplies to the other hint tokens.

The family members do not have to configure the shortcuts themselves. Inother words, each family member does not need to log into an accountthat is associated with the server 108 and set up the shortcut. Thefamily members do not need to set up bookmarks and do not have theclutter of yet another bookmark in their bookmark list. Note thatdifferent family members having different computers and different useraccounts with the server 108 share the family shortcuts set.

As another example, the shortcut set might apply to a controlledenvironment within a corporation. A “corporate shortcut set” mightcontain hint tokens of “intranet, “hr”, “directory”. Employees are ableto type in “!directory John Doe” to search the company directory for theemployee “John Doe”, without having to configure such a shortcutthemselves. Also note that the same hint token applies regardless ofwhich client 102 within the controlled environment (e.g., 101(1)) theuser is currently using, even if the user is not logged in using theirown user identifier. However, outside of the controlled environment101(1) the corporate shortcut set does not apply.

User Groups

This system 110 also provides shortcuts based on user groups of whichthe user is a member. For example, if a particular user belongs to agroup of automobile enthusiasts, a group administrator (or owner) canset up shortcuts for use by the automobile enthusiast group. Note that auser group shortcut set 112 applies to all users in a given group,whereas an individual user shortcut set 110 applies to a particularuser.

Note that the user does not need to be in a controlled environment 101for a user group shortcut set to apply. Assume that a user is a memberof a user group having a user group shortcut set 112 containing the hinttoken “sc-jobs”. If the user is at client 102(3) and enters “!sc-jobs”in a request box of a web browser interfacing with the server 108, theserver 108 will consult the user group shortcuts set 112 to find a datasource associated with the hint token “sc-jobs”. The server 108 directsthe client 102(3) to a data source corresponding to the shortcut“sc-jobs”, as configured by the group administrator.

Process Flow

FIG. 2 is a flowchart of a process 200 for shortcut sets for controlledenvironments and user groups, in accordance with an embodiment of thepresent invention. Process 200 describes a particular order in whichvarious shortcut sets are accessed. The shortcut sets may be accessed inany order. Moreover, not all of the shortcut sets need to be used.

In step 202, the server 108 receives a request from one of the clients102. The request may or may not be passed via a proxy 106. In oneembodiment, the request is a search query. The request contains aparticular hint token that identifies the shortcut requested by the userat the client 102.

In step 204, the server 108 determines whether the particular hint tokenis in a default shortcut set. The default shortcut set is an individualuser shortcut set 110, in one embodiment. Thus, the server 108identifies a user that is using the client 102 and looks for theparticular hint token in the user shortcut set 110, in one embodiment.The server 108 identifies the user based on a user ID currentlyassociated with the web browser that sent the request, in oneembodiment. For example, a user might login to the server 108, thusproviding the user ID.

If the particular hint token is found in the user shortcut set 110, thenthe server 108 directs the client 102 to the data source that isassociated with the particular token in the user shortcut set 110, instep 206. In one embodiment, the server 108 sends a re-direct message tothe client 102 to direct the client 102 to the data source.

In one embodiment, the server 108 causes the client 102 to initiate asearch at the data source. In this search embodiment, the server 108 mayform a string that allows the client 102 to initiate the search. Forexample, if the hint token is “!wmv”, then a string such as“weather.yahoo.com/forecast/USCA0746.html” might be appropriate todirect the client 102 to initiate a search for weather for MountainView, Calif.

If the particular hint token is not in the default shortcut set, thenthe server 108 may select one of the environment-specific shortcut sets124(3)-124(n), in step 208. The proxy 106 passes a proxy ID to theserver 108 to assist the server 108 in the selection, in one embodiment.However, the server 108 does not have environment-specific shortcut set124(3)-124(n), in one embodiment. In one embodiment, the proxy 106 in acontrolled environment 101 has access to environment specific shortcuts124. An embodiment in which the proxy 106 directs the client 102 to thedata source is discussed below.

In step 210, the server 108 searches for the particular hint token inthe selected environment specific shortcut set (e.g., 124(3)). If theparticular hint token is found, the server 108 directs the client 102 tothe data source associated with the particular hint token.

If the particular hint token is not in the environment specific shortcutset 124(3), then the server 108 may select one of the user groupshortcut sets 112(1)-112(n), in step 214. The server 108 identifies whatuser groups the user is associated with and selects a user groupshortcut set 112 for one or more of the user groups. In step 216, theserver 108 searches for the particular hint token in the selected usergroup shortcut set(s) 112. If the particular hint token is found, theserver 108 directs the client 102 to the data source associated with theparticular hint token.

If the server 108 does not find the hint token in any of the shortcutsets, then the server 108 returns a “shortcut not found” message, instep 218. In one embodiment, this message is returned to and processedby a proxy 106. In another embodiment, this message is returned to andprocessed by the client 102.

Proxy Shortcut Flow

As previously discussed, a proxy 106 has access to environment specificshortcut sets 124, in one embodiment. In this embodiment, the proxy 106examines the previously discussed response from the server 108 todetermine whether the proxy 106 should look for a shortcut in theenvironment specific shortcut set 124. For example, if the server 108does not find a suitable shortcut in an individual user shortcut set 110or a user group shortcut set 112, or environment specific shortcut set124, then the server 108 may return a “shortcut not found” message. Theproxy 106 responds to this message by searching its environment specificshortcut set 124 and directing the client 102 to the data source that isassociated with the particular hint token.

Hardware Overview

FIG. 3 is a block diagram that illustrates a computer system 300 uponwhich an embodiment of the invention may be implemented. Computer system300 includes a bus 302 or other communication mechanism forcommunicating information, and a processor 304 coupled with bus 302 forprocessing information. Computer system 300 also includes a main memory306, such as a random access memory (RAM) or other dynamic storagedevice, coupled to bus 302 for storing information and instructions tobe executed by processor 304. Main memory 306 also may be used forstoring temporary variables or other intermediate information duringexecution of instructions to be executed by processor 304. Computersystem 300 further includes a read only memory (ROM) 308 or other staticstorage device coupled to bus 302 for storing static information andinstructions for processor 304. A storage device 310, such as a magneticdisk or optical disk, is provided and coupled to bus 302 for storinginformation and instructions.

Computer system 300 may be coupled via bus 302 to a display 312, such asa cathode ray tube (CRT), for displaying information to a computer user.An input device 314, including alphanumeric and other keys, is coupledto bus 302 for communicating information and command selections toprocessor 304. Another type of user input device is cursor control 316,such as a mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to processor 304 and forcontrolling cursor movement on display 312. This input device typicallyhas two degrees of freedom in two axes, a first axis (e.g., x) and asecond axis (e.g., y), that allows the device to specify positions in aplane.

The invention is related to the use of computer system 300 forimplementing the techniques described herein. According to oneembodiment of the invention, those techniques are performed by computersystem 300 in response to processor 304 executing one or more sequencesof one or more instructions contained in main memory 306. Suchinstructions may be read into main memory 306 from anothermachine-readable medium, such as storage device 310. Execution of thesequences of instructions contained in main memory 306 causes processor304 to perform the process steps described herein. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the invention. Thus,embodiments of the invention are not limited to any specific combinationof hardware circuitry and software.

The term “machine-readable medium” as used herein refers to any mediumthat participates in providing data that causes a machine to operationin a specific fashion. In an embodiment implemented using computersystem 300, various machine-readable media are involved, for example, inproviding instructions to processor 304 for execution. Such a medium maytake many forms, including but not limited to storage media andtransmission media. Storage media includes both non-volatile media andvolatile media. Non-volatile media includes, for example, optical ormagnetic disks, such as storage device 310. Volatile media includesdynamic memory, such as main memory 306. Transmission media includescoaxial cables, copper wire and fiber optics, including the wires thatcomprise bus 302. Transmission media can also take the form of acousticor light waves, such as those generated during radio-wave and infra-reddata communications. All such media must be tangible to enable theinstructions carried by the media to be detected by a physical mechanismthat reads the instructions into a machine.

Common forms of machine-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CD-ROM, any other optical medium, punchcards, papertape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread.

Various forms of machine-readable media may be involved in carrying oneor more sequences of one or more instructions to processor 304 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 300 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 302. Bus 302 carries the data tomain memory 306, from which processor 304 retrieves and executes theinstructions. The instructions received by main memory 306 mayoptionally be stored on storage device 310 either before or afterexecution by processor 304.

Computer system 300 also includes a communication interface 318 coupledto bus 302. Communication interface 318 provides a two-way datacommunication coupling to a network link 320 that is connected to alocal network 322. For example, communication interface 318 may be anintegrated services digital network (ISDN) card or a modem to provide adata communication connection to a corresponding type of telephone line.As another example, communication interface 318 may be a local areanetwork (LAN) card to provide a data communication connection to acompatible LAN. Wireless links may also be implemented. In any suchimplementation, communication interface 318 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

Network link 320 typically provides data communication through one ormore networks to other data devices. For example, network link 320 mayprovide a connection through local network 322 to a host computer 324 orto data equipment operated by an Internet Service Provider (ISP) 326.ISP 326 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 328. Local network 322 and Internet 328 both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on network link 320and through communication interface 318, which carry the digital data toand from computer system 300, are exemplary forms of carrier wavestransporting the information.

Computer system 300 can send messages and receive data, includingprogram code, through the network(s), network link 320 and communicationinterface 318. In the Internet example, a server 330 might transmit arequested code for an application program through Internet 328, ISP 326,local network 322 and communication interface 318.

The received code may be executed by processor 304 as it is received,and/or stored in storage device 310, or other non-volatile storage forlater execution. In this manner, computer system 300 may obtainapplication code in the form of a carrier wave.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. Thus, the sole and exclusive indicatorof what is the invention, and is intended by the applicants to be theinvention, is the set of claims that issue from this application, in thespecific form in which such claims issue, including any subsequentcorrection. Any definitions expressly set forth herein for termscontained in such claims shall govern the meaning of such terms as usedin the claims. Hence, no limitation, element, property, feature,advantage or attribute that is not expressly recited in a claim shouldlimit the scope of such claim in any way. The specification and drawingsare, accordingly, to be regarded in an illustrative rather than arestrictive sense.

What is claimed is:
 1. A method comprising: maintaining a plurality ofshortcut sets in a storage that is accessible to a proxy that iscommunicatively positioned between a client and a server; wherein eachshortcut set of the plurality of shortcut sets contains associationsbetween one or more hint tokens and one or more data sources; examining,at the proxy, a response that was sent by the server in response to arequest from the client to the server, the request containing aparticular hint token; determining, by the proxy, whether the responsefrom the server indicates that the server has found a shortcut set thatcontains the particular hint token; in response to determining that theresponse from the server indicates that the server has not found ashortcut set that contains the particular hint token, the proxydetermining whether any shortcut set in the plurality of shortcut setscontains the particular hint token; and in response to determining thata particular shortcut set in the plurality of shortcut sets contains theparticular hint token, the proxy directing the client to a data sourceassociated, within the particular shortcut set, with the particular hinttoken.
 2. The method of claim 1, wherein the step of directing theclient to a data source comprises directing the client to initiate asearch at the data source associated with the particular hint token. 3.The method of claim 1, wherein the step of directing the client to adata source comprises directing the client to a website associated withthe data source.
 4. The method of claim 1, wherein the proxy is with aspecific environment in which the client is located, and wherein theplurality of shortcut sets comprises one or more environment specificshortcut sets associated with the specific environment.
 5. The method ofclaim 1, wherein the proxy directing the client to a data sourceassociated, within the particular shortcut set, with the particular hinttoken includes the proxy sending to the client a message that causes theclient to receive data from the data source.
 6. A proxy comprising: oneor more processors; storage that has stored thereon a plurality ofshortcut sets; wherein each shortcut set of the plurality of shortcutsets contains associations between one or more hint tokens and one ormore data sources; communication hardware that enables the proxy tocommunicate with a client and a server; wherein the proxy iscommunicatively coupled between the client and the server; wherein theone or more processors are programmed to: examine a response that wassent by the server in response to a request from the client to theserver, the request containing a particular hint token; determinewhether the response from the server indicates that the server has founda shortcut set that contains the particular hint token; in response todetermining that the response from the server indicates that the serverhas not found a shortcut set that contains the particular hint token,determine whether any shortcut set in the plurality of shortcut setscontains the particular hint token; and in response to determining thata particular shortcut set in the plurality of shortcut sets contains theparticular hint token, direct the client to a data source associated,within the particular shortcut set, with the particular hint token. 7.The apparatus of claim 6, wherein the one or more processors are furtherprogrammed to direct the client to a website corresponding to the datasource.
 8. The apparatus of claim 6, wherein the one or more processorsare further programmed to direct the client to initiate a search at thedata source associated with the particular hint token.
 9. The apparatusof claim 6, wherein the one or more processors are further programmed todirect the client to a website associated with the data source.
 10. Theapparatus of claim 6, wherein the proxy is with a specific environmentin which the client is located, and wherein the plurality of shortcutsets comprises one or more environment specific shortcut sets associatedwith the specific environment.
 11. A non-transitory computer readablestorage medium storing instructions which, when executed by one or moreprocessors, causes the processors to perform: maintaining a plurality ofshortcut sets in a storage that is accessible to a proxy that iscommunicatively positioned between a client and a server; wherein eachshortcut set of the plurality of shortcut sets contains associationsbetween one or more hint tokens and one or more data sources; examining,at the proxy, a response that was sent by the server in response to arequest from the client to the server, the request containing aparticular hint token; determining, by the proxy, whether the responsefrom the server indicates that the server has found a shortcut set thatcontains the particular hint token; in response to determining that theresponse from the server indicates that the server has not found ashortcut set that contains the particular hint token, the proxydetermining whether any shortcut set in the plurality of shortcut setscontains the particular hint token; and in response to determining thata particular shortcut set in the plurality of shortcut sets contains theparticular hint token, the proxy directing the client to a data sourceassociated, within the particular shortcut set, with the particular hinttoken.
 12. The non-transitory computer readable medium of claim 11,wherein the one or more sequences of instructions further compriseinstructions which cause directing the client to a website correspondingto the data source.
 13. The non-transitory computer readable medium ofclaim 11, wherein the one or more sequences of instructions furthercomprise instructions which cause directing the client to initiate asearch at the data source associated with the particular hint token. 14.The non-transitory computer readable medium of claim 11, wherein the oneor more sequences of instructions further comprise instructions whichcause directing the client to a website associated with the data source.15. The non-transitory computer readable medium of claim 11, wherein theproxy is with a specific environment in which the client is located, andwherein the plurality of shortcut sets comprises one or more environmentspecific shortcut sets associated with the specific environment.